In typical data processors, the performance of the divide operation involves, at some point, shifting the data blocks or bit groups left and counting the number of shifts. For most operations, the number of shifts required are on the order of two or three and do not comprise an appreciable portion of the overall operation. However, in some operations, such as division, the number of shifts required are numerous, requiring shifting left through the entire bit string. For example, in a division operation with a sixteen bit (two byte) wide quotient, the quotient must be shifted left sixteen times during a subtract suboperation in the arithmetic logic unit (ALU) of the data processor central processing unit (CPU). This shift sequence must be counted so that the CPU will know when to jump out of the loop or sequence of iterations.
The functions of shifting and counting are ordinarily handled by a dedicated shifter and a dedicated counter which come into play only during the divide operation. No known data processor performs the shift and count functions for loops in the neighborhood of sixteen iterations without a dedicated shifter and a dedicated counter.